Field of the Invention
The present invention relates in general to processors, and more particularly, to a processor with an expandable instruction set architecture that enables dynamic configuration of execution resources.
Description of the Related Art
Processors continue to become more powerful. The term “processor” as used herein refers to any type of processing unit, including a microprocessor, a central processing unit (CPU), a processing core, a microcontroller, etc. The term “processor” as used herein also includes any type of processor configuration, such as processing units integrated on a chip or integrated circuit (IC) including those incorporated within a system of a chip (SOC) or the like. Semiconductor manufacturing techniques are continually being improved to increase speed, reduce power consumption and reduce the size of circuitry integrated on a processing chip. The reduction of integration size allows additional functionality to be incorporated within the processing unit. Once a processor is manufactured, however, its execution processing functions and its instruction set architecture (ISA) are essentially fixed. A programmer or a compiler cannot deviate beyond the well defined bounds of the standard instructions defined for a given processor configuration without risking improper operation or even failure.
Many applications are written to include a series of instructions designed to perform a particular function or processing operation that is not specifically performed by any hardware block within a processing unit. Often, such code includes a software loop that may be executed a substantial number of times during execution of the application program. Although a processor may be fabricated to include a hardware block to perform a specific function to accelerate execution and completion to improve performance of that specific application, such a solution is not practical since the same hardware block might not be useful for any other programs. General purpose processors, therefore, are typically manufactured to include relatively common and basic functions to that are generally useful and practical for a large variety of different software applications. The programmer must construct algorithms, functions and operations to meet the needs of the specific application using the standard instruction set provided.